#ifndef __SWEI_SOCKET_H
#define __SWEI_SOCKET_H

#include "service/include/swei_common.h"

#ifdef __cplusplus
extern "C" {
#endif


typedef enum {
	M_RECONN,
    M_SRV,
	M_SOC_STAT,
	M_OPEN,
	M_CLOSE,
}stk_cmd_t;

/**
 * @brief 套接字初始化
 */
void 	swei_socket_init(void);
/**
 * @brief 套接字管理连接流程
 */
void    swei_socket_process(void);
/**
 * @brief 套接字去除初始化
 */
void 	swei_socket_deinit(void);


/** @brief 判断socket连接状态 */
uint8_t swei_socket_connect_ok(void);
/** @brief 从 TCP 服务器读数据 */
ssize_t swei_tcp_read(void *buff, size_t size);
/** @brief 发送数据到 TCP 服务器 */
ssize_t swei_tcp_write(const void *buff, size_t size);
/** @brief 查询 TCP 连接发送状态 */
int32_t swei_tcp_write_query(void);
/** @brief socket事件更新 */
void swei_socket_update(stk_cmd_t id, int32_t prm, void *data, size_t size);
/** @brief 判断套接字是否有效 */
#define socket_is_valid(id)     ((id)>=0)

#ifdef __cplusplus
}
#endif

#endif
